A computer cluster consists of a set of computer servers (cluster nodes) that are connected to each other through fast local area networks (“LAN”) and work together so that, in many respects, they can be viewed as a single system. Each node generally runs its own instance of an operating system, and they may use similar or dissimilar hardware and operating systems. Computer clusters are generally deployed to improve performance and availability relative to the capabilities of a single computer, and may be much more cost-effective than single computers of comparable speed or availability.
A processor configured by executing appropriate program code instructions may function as a message channel agent that controls the sending and receiving of messages between message engines of respective nodes on a channel defined in a messaging computer cluster environment. Message channel agents move messages from one queue manager to another, wherein there is generally one message channel agent at each end of a channel. A channel is started on a channel initiator if it has access to a channel definition for a channel with that name. A channel definition can be defined to be private to a queue manager, or stored on the shared repository and available anywhere (a group definition). This means that a group defined channel is available on any channel initiator in a queue-sharing group.
Messaging cluster environment structures are commonly used in enterprise production environments, wherein a given application consumes messages from a same cluster queue instance defined on multiple messaging engines of the cluster nodes. Agile environments enable development of new versions of messaging applications in a short time cycles, and new versions may be deployed before they are fully tested, leading to production stability concerns.